Methods and apparatus for routing TCAP messages

ABSTRACT

The present invention relates to a point code emulation apparatus and method for dividing a Common Channel Signaling System No. 7 (or SS7) signaling network into two or more networks. The point code emulator is adapted to receive TCAP messages from two or more subnets and converts, for the messages crossing over the subnets, the information of the TCAP messages, including originating point code, destination point code, and transaction identifier, (and optionally, calling party number and called party number), and forwards to the other one of the two or more subnets. Correspondence among the two or more subnets may be provisioned by an authorized user of the system, may be learned automatically by the system based on ISUP message correspondences or previous TCAP transactions, or may be automatically discovered by the system broadcasting messages to nodes in the destined one of the two or more subnets.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 14/202,535 filed on Mar. 10, 2014, which is hereby incorporated by reference in its entirety and which is a divisional of U.S. application Ser. No. 13/874,302, filed on Apr. 30, 2013, now U.S. Pat. No. 9,026,480, which is a continuation of application Ser. No. 12/528,652 filed Aug. 26, 2009, now U.S. Pat. No. 8,452,890, which was the National Stage of International Application No. PCT/US2007/087636 filed Dec. 14, 2007, which claims the benefit of U.S. Provisional Application No. 60/891,692 filed Feb. 26, 2007.

FIELD OF THE INVENTION

The present invention relates to a point code emulation apparatus, system and method for dividing a Common Channel Signaling System No. 7 (or SS7) signaling network into two or more networks.

BACKGROUND OF THE INVENTION

Common Channel Signaling System No. 7 (or SS7) is a global standard for telecommunications defined by the International Telecommunication Union Telecommunication Standardization Sector (or ITU-T). The standard defines the procedures and protocol by which network elements in the public switched telephone network (PSTN) exchange information over a digital signaling network to effect wireless (cellular) and wireline call setup, routing and control. The ITU definition of SS7 allows for national variants such as the American National Standards Institute (ANSI) and Bell Communications Research (Telcordia Technologies) standards used in North America, the European Telecommunication Standards Institute (ETSI) standard used in Europe, and the Telecommunication Technology Committee (TTC) standard used in Japan. SS7 messages are exchanged between network elements over 56 or 64 kilobit per second (kbps) bi-directional channels called signaling links, or can be exchanged over the Internet Protocol or over ATM in a point-to-point or networking fashion using adaptation layers. As SS7 network evolves, more transparent methods and protocols can be defined.

Each signaling point in the SS7 network is uniquely identified by a numeric point code. Point codes are carried in signaling messages exchanged between signaling points to identify the source and destination of each message. However, as the network grows its size and complexity, new point codes would eventually become scarce and, thus creating such new point codes would be very expensive. Re-architecturing a signaling network, i.e. adding a new network (or network elements) or deleting a part of the network could also be time consuming and often requires reprogramming the switches according to the new network architecture, thus it is desirable to have a method and apparatus for expanding the network without going through such network rearchitecturing.

There are a couple of prior art systems attempted to solve such issues. For example, U.S. Pat. No. 6,987,781, entitled “Methods and Systems for Routing signaling Messages in a Communication Network Using Circuit Identification Code (CIC) Information”, issued to Miller et al on Jun. 17, 2006 relates to a routing node for receiving, processing and subsequently transmitting SS7 signaling messages destined for a Media Gateway Controller type network element, where the network element is a CIC routing node adapted to receive ISUP messages from an associated SS7 network and determine the routing destination of the messages based on originating point code (or OPC), destination point code (or DPC) and circuit identification code (or CIC). However, in this prior system, such conversion is limited to ISUP messages, thus it would not be able to extend the services using other message types, such as SCCP or TCAP messages, thus this is a limitation of this solution.

SUMMARY OF THE INVENTION

The present invention relates to a point code emulation apparatus, system and method for dividing a Common Channel Signaling System No. 7 (or SS7) signaling network into two or more networks.

One object of the present invention is to overcome the limitation on the number of addressable nodes in a network, and, to provide a method and apparatus for expanding and extending the network without having to re-architecting the entire SS7 signaling network.

Another object of the present invention is to divide the SS7 signaling network into two or more subnets.

Yet another object of the present invention is to provide a system for sharing TCAP traffic load among a plurality of nodes in a subnet by hiding details of the subnet.

According to one aspect of the invention, it provides a method of routing a TCAP message for dividing a SS7 signaling network into two or more subnets, comprising the steps of: (i) receiving the TCAP message from one of the two or more subnets; (ii) extracting OPC, DPC and TID of the TCAP message; (iii) looking up and retrieving, from a plurality of structured data storages, a corresponding OPC, a corresponding DPC and a corresponding TID for the other one of the two or more subnets based, partially or combinedly, on the OPC, the DPC and the TID of the received TCAP message; (iv) replacing the OPC, the DPC, and/or the TID of the received TCAP message with the corresponding OPC, the corresponding DPC and/or the corresponding TID; and (v) forwarding the TCAP message with the corresponding OPC, the corresponding DPC and the corresponding TID to the other one of the two or more subnets.

According to another aspect of the invention, it provides a computer readable medium storing executable computer program instructions which, when executed at a node, cause the node to perform a process of routing a TCAP message between two or more subnets of a SS7 signaling network, comprising steps of: (i) receiving said TCAP message from one of the two or more subnets; (ii) extracting OPC, DPC and TID of the TCAP message; (iii) looking up and retrieving, from a plurality of structured data storages, a corresponding OPC, a corresponding DPC and a corresponding TID for the other one of the two or more subnets based, partially or combinedly, on the OPC, the DPC and the TID of the received TCAP message; (iv) replacing the OPC, the DPC, and/or the TID of the received TCAP message with the corresponding OPC, the corresponding DPC and/or the corresponding TID; and (v) forwarding the TCAP message with the corresponding OPC, the corresponding DPC and the corresponding TID to the other one of the two or more subnets.

According to yet another aspect of the invention, it provides a network apparatus for routing a TCAP message between at least two subnets of a SS7 signaling network, comprising: (i) a corresponding number of interfaces to said at least two subnets of said SS7 signaling network for interfacing with said at least two subnets; (ii) a plurality of structured data storages; and (iii) a processor in communication with the corresponding number of the interfaces and the plurality of data storage, wherein the processor is for carrying out a process of said routing said TCAP message between said at least two subnets, said process comprising the process of: —receiving said TCAP message from one of the two or more subnets; —extracting OPC, DPC and TID of the TCAP message; —looking up and retrieving, from the plurality of structured data storages, a corresponding OPC, a corresponding DPC and a corresponding TID for the other one of said two or more subnets based, partially or combinedly, on the OPC, the DPC and the TID of the received TCAP message; replacing the OPC, the DPC, and/or the TID of the received TCAP message with the corresponding OPC, the corresponding DPC and/or the corresponding TID; and —forwarding the TCAP message with the corresponding OPC, the corresponding DPC and the corresponding TID to the other one of the two or more subnets.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described in more detail with reference to the accompanying drawings, in which:

FIG. 1 is an overview of a point code emulation of a preferred embodiment of the present invention;

FIG. 2 is a simplified network diagram showing TCAP message flow from a node in Private Network;

FIG. 3 is a simplified network diagram showing TCAP message flow from a node in Public Network;

FIG. 4 is a call flow diagram showing a case for TCAP broadcasting;

FIG. 5 is a call flow diagram showing a case for TCAP learning from previous TCAP message;

FIG. 6 is a call flow diagram showing a case for ISUP learning;

FIG. 7 is a process flow chart for handling a TCAP message originated from a node in Public Network; and

FIG. 8 is a process flow chart for handling a TCAP message originated from a node in Private Network.

DETAILED DESCRIPTION OF THE INVENTION

Referring to FIG. 1, a system 1 is a signal transfer point (STP) in a SS7 signalling network. The system 1 comprises a point code emulator 100 interacting with SCCP 112 and MTP 113 in Public Network 10 side and with SCCP 122 and MTP 123 in Subnet (or Private Network) 20 side. The system 1 further comprises GTT 111 at Public Network 10 side and GTT 121 at Private Network 20 side. The system 1 may interface with more than two network segments or subnets. For each subnet, the system 1 would further comprises corresponding SCCP (not shown) and MTP (not shown), and corresponding GTT (not shown), in communication with PCE 100.

The system 1 further comprises at least one structured data storage means 30, such as database, embedded within, externally accessible from PCE 100, or internally accessible within the system 1 for recording, managing and querying point codes and trunk mappings for each subnet the system 1 is connected to, the data including, but not limited to, Public Nodes (or Nodes in Public Network 10), Private Nodes (or Nodes in Private Network 20), Public gateway, GTT tunnel Gateways, trunk mappings and ISUP Learning Exceptions.

The Public Nodes define the switches in Public Network 10 while the Private Nodes define the switches in Private Network 20. The Public Gateway represents the point code presence in Public Network 10 to access Private Network 20. The GTT Tunnel Gateway represents the GTT Tunnel point codes in both Public Network 10 and Private Network 20 for the TCAP management bypass. The Trunk Mapping is used for ISUP traffic only by defining CIC range maps.

A Public Node record is created for every switch in Public Network 10, which requires access to Private Network 20. The Public Node records are stored/managed in the database. It is noted that the Public Nodes are not limited to switches/nodes adjacent to the system 1 in Public Network 10. For TCAP traffic, the number of Public Nodes can be in the hundreds due to Private Network 20 initiated transaction with Point Code—Sub System Number (or PC-SSN) routing. It is preferable that two hash tables may be utilized for efficient querying, i.e. one for the messages via Public Home Point Code and the other with Point Code for Private Network 20.

A Private Node record is created for every switch in Private Network 20. For TCAP only traffic, Private Node records may not be required due to GTT Routing and Transaction Id (or TID) records which keep track of the originating Point Code of the switch/node in Private Network 20.

PCE 100 typically supports a single Point Code presence in Public Network 10 via a Public Gateway record for interacting with nodes in Private network 20. A second Public Gateway record can be created if there are multiple Point Code presences available in Public Network 10. Multiple Public Gateway deployment is used when two existing correlated switches are extracted from a network to form the expanding Private network 20. The resulting Public Network 10 is already configured for the two Point Code presences.

MTP 113 and MTP 123 handle inter-network traffic and intercept cross network traffic. Virtual Nodes are defined in the MTP 123 for corresponding a point code in Private Network 20 to relevant nodes in Public Network 10. Virtual Nodes are also defined in MTP 113 for corresponding Gateway Point Codes in Public Network 10 and for any corresponding GTT tunnel Gateway Point Code(s).

SCCP 112 routes all TCAP traffic to PCE 100, which is same for Private Network 20, SCCP 122 routes all TCAP traffic to PCE 100 for GTT 111 and Point Code—SubSystem Number (PC-SSN) routed traffic. SCCP Management messages (SCMG) are preferably processed locally within the associated network side in which the messages are originated from, and thus are not crossing over to the other side of the network.

The GTT 111 is used to route the TCAP transactions initiated by Public Network 10 to Private Network 20 and the TCAP messages destined for PCE GTT Tunnelling (not shown).

The GTT Tunnelling is to bypass the TCAP transaction conversion for certain SCCP services. For example, GSM traffic and LNP ANSI queries might originate from Private Network 20. As the GSM traffic is routed on GTT information but LNP is PC-SSN routed, the LNP queries would require TCAP transaction management while the GSM message would be sent to the GTT directly via GTT Tunnelling.

The GTT Tunnelling can be identified by the incoming message's Destination Point Code (DPC). Cross network configuration between the Private and Public tunnelling messages is required for proper routing at PCE 100 to the appropriate SCCP.

For GTT routing of Public initiated queries, the GTT Destination List is set to the necessary Private Network Appearance with its relevant point codes. This allows cross network transfer at the GTT 111. PCE 100 will forward the resulting message directly to SCCP 122 in Private Network 20 side.

In the other embodiment of the present invention, the system 1 further permits multiple Private Network Appearances to configure two switches in Private Network 20 with the same point code.

TCAP transaction identifiers are up to 4 octets in length and are unique from an origination switch to a given destination. Thus the combination of OPC, DPC, and TID make a unique key.

As Nodes in Private Network 20 are usually not a one-to-one mapping to the Public Gateways, each of the TIDs in TCAP messages originated from Private Network 20 must be mapped to a unique value to ensure their uniqueness in Public Network 10. For Public Nodes, the TID mapping is also useful to keep track of the Public Gateway used to receive the public query such that the response uses the proper OPC back to Public Network 10. It is noted that, in the case of a mated-pair configuration for redundant SS7 traffic support, each PCE 100 must not duplicate the TIDs used to maintain their uniqueness.

The TID information may be stored and managed in a structured data storage means, i.e. hash tables, to allow for efficient queries based on TIDs of the incoming TCAP messages. Preferably, PCE 100 comprises at least two hash tables, one based on incoming original TID 41 and the other based on received TID 42. The original TID search is used during conversation to find an existing record. The received TID is used to correlate bi-directional messages between TID records for Public Network 10 and TID records for Private Network 20 during transaction completion from one of Public Network 10 and Private Network 20, whichever did not initiate the original TCAP query. The received TID search is used during responses to find the original information.

When PCE 100 records the TIDs, each of the records is given an expiry time and a lifespan for the record, and such lifespan information may be managed using another structured data storage means, i.e. a list (or a lifespan list) 43 and managed using timer related software object. As lifespan value is individually assigned and managed for each of the records and can be cleared in a first-in first-out fashion. PCE 100 maintains the lifespan list 43 and, at every specific time interval, the first item (or the oldest item) in the lifespan list 43 is evaluated to determine whether the lifespan is expired. Upon expiry of the lifespan of the oldest item, the lifespan list 43 is parsed from the head (or oldest one) toward the tail (or the youngest one). Each lifespan, which is considered to be expired, is recycled and causes corresponding TID records in the incoming original TID hash table 41 and/or the received TID hash table 42 to be recycled as well, and the timer is restarted if necessary.

FIG. 2 illustrates a typical TCAP message flow originating from a Private Node 231 to a Public Node 131 though PCE STP Mate 1 100M1 of the system 1M, which is in a mated-pair configuration with the system 1M′. A TCAP-Begin message is originated from Private Node 231 (PC value is 1.1.1), bearing OPC value of 1.1.1, DPC value of 3.3.3 and TID value of 000001 in the direction 51. PCE 100 intercepts the TCAP-Begin message and stores TID and OPC in the hash table. PCE 100, then, replaces OPC value with 5.5.5, which is the PC of the system 1 for Public Network 10, and replaces TID value with an available unique TID value, i.e. 100001, in this example. PCE 100 forwards the message to Public Node 131. Once Public Node 131 receives the message, then Public Node 131 generates a TCAP-Response message, bearing OPC value of 3.3.3, DPC value of 5.5.5, and TID value of 100001, and forwards the message in the direction 52. PCE 100 intercepts the TCAP-Response message and look up DPC and TID in the hash table, and finds that Private Node 231 and TID value of 000001 corresponds, thus replaces DPC and TID, accordingly. Then, PCE 100 forwards the message to the Private Node 231.

FIG. 3 illustrates a typical TCAP message flow originating from a Public Node having point code value 3.3.3 131 to a Private Node having point code value 1.1.1 231 through PCE STP Mate 1 100M1. For such case, the operator of Private Network 20 provisions PCE 100 to either route all TCAP traffic designated to specific Public Gateway to a single node in Private Network 20, or retrieve a final destination from GTT 111 and/or GTT 121.

The Point Codes that are used to represent nodes in Private Network 20 to Public Network 10 are known as Public Gateway Point Codes. The operator of Private Network 20 may choose to declare one private destination for a particular Public gateway point code. This would be appropriate if there is a Public Gateway Point Code(s) that are to represent one application node in Private Network 20. This may be an uncommon usage of PCE 100, as one public destination is required to be fixed to one private destination.

A TCAP Begin message is sent from Public Node 3.3.3 131 to PCE STP Mate-1 100M1 in the direction 61, where the message bearing OPC value of 3.3.3, DPC value of 5.5.5 (which is the system 1's PC value in Public Network 10), and TID value of 000001. Assuming that the operator of Private Network 20 or the authorized user of PCE 100 has been provisioned PCE 100 such that all TCAP Begin message sent to the system 1 or Public Gateway Node at 5.5.5 should be directed to the private node 1.1.1. In a case where the operator of Private Network 20 may have rather provisioned GTT 111 or/and 121 databases, thus for TCAP transactions that originate (with a TCAP Begin message) from Public Network 10, PCE 100 may interact with GTT to seek for a final destination in Private Network 20.

PCE 100 replaces the DPC value to 1.1.1 as provisioned and assign new value for TID, i.e. 100001, record TIDs in the TID hash tables, and forward the converted message to Private Node 1.1.1 231 in Private Network 20. Once Private Node 1.1.1 231 receives the TCAP Begin message, it generates the TCAP Response message bearing OPC value of 1.1.1, DPC value of 3.3.3, and TID value of 100001, and forwards the message in the direction 62. PCE 100, again, intercepts the message and look up corresponding TID for Public Network 10 from the hash tables 41 and 42, and retrieves the corresponding TID value, which is 000001. PCE 100 converts OPC value to 5.5.5 and TID values to 000001, and forwards the converted message to Public Node 3.3.3 131.

Occasionally, when the operator of Private Network 20 provisioned PCE 100 to inquire GTT for resolving final destination for TCAP messages originated from a node in Public Network 10, the result of the inquiry to GTT 121 and/or GTT 111 may be inconclusive. If the GTT information is inconclusive and traffic cannot be mapped one-to-one between the system 1 (or the Public Gateway) and a node in Private Network 20, PCE 100 may broadcast the message to all or designated nodes in Private Network 20. Once PCE 100 broadcasts the TCAP query to all or designated nodes in Private Network 20, PCE 100 waits for a successful response before forwarding the response back to the Public Node 131. PCE may, optionally, send the TCAP query to a randomly selected node(s) in Private Network 20. Upon reception of successful responses from the nodes in Private Network 20, the most successful one will be regarded as the designation in Private Network 20 for the transaction.

If a broadcast has returned a successful response to one TCAP message, then it stands to reason that there is a TCAP request to the same called party afterwards. This would avoid broadcasting repeatedly to the switches including the switch that just provided a positive response. Similarly, if a message comes from Private Network 20 with calling party information, this information can be used to further learn about destinations in Private Network 20.

FIG. 4 is a call flow chart illustrating TCAP broadcast learning method. Public Node 131 generates and transmits TCAP begin message 151 to PCE 100. The PCE 100, then, broadcasts the messages 152 and 153 to all Private Nodes 231 and 232, respectfully, since PCE 100 could not determine to which node in Private Network 20 the message should be routed. Private Node 231 rejects, generates and transmits TCAP Reject message 154 back to PCE 100. Private Node 232 accepts, generates and transmits TCAP Response 155 to PCE 100. PCE 100 learns from this transaction that the private node (or called party) that was able to successfully terminate the TCAP Begin message from Public Node 131 was Private Node 232. Subsequently, when PCE 100 receives another TCAP Begin message 157 from the same called party number, PCE 100 simply forwards the message 158 to Private Node 232.

FIG. 5 is a call flow chart illustrating learning method from TCAP message initiated from Private Network 20. Private Node 232 sends a TCAP Begin message 161 to PCE 100. PCE 100 converts and forwards TCAP Begin message 162 to Public Node 131, and make records of calling party digits and TID information in the hash tables 41 and 42. Once Public Node 131 receives TCAP Begin message 162, Public Node 131 generates and transmits TCAP End message 163 to PCE 100. PCE 100 looks up and retrieve TID from the hash table 41 and 42, converts and transmits the message 164 to Private Node 232. Subsequently, Public Node 131 transmits a TCAP Begin message 165 to PCE 100. Based on the called party digits and the originator information, PCE 100 looks up and retrieve corresponding DPC and TID value from the hash tables 41 and 42. PCE 100, then, converts and forwards the message 166 to Private Node 232.

ISUP traffic between the Public and a Private network is well defined by the Trunk Mappings. For TCAP traffic, the TID mapping is unique for Private queries to Public Network 10 but not in the reverse direction. Typically, the GTT is configured to select the proper Private Node or a broadcast scheme can be used as described above. ISUP learning may be enabled or disabled by an authorized user.

For “class 5” functionality such as “*69” using TCAP queries, the preceding ISUP IAM contains the digits information used in the TCAP SCCP Called Party Address parameter. As the IAM already knows its destination based on its CIC, the Private Node can be learned for a given phone number.

The ISUP learned information should not be kept statically as phone numbers can be ported and cell phones can roam. The ISUP learning digits have a configurable lifespan set, preferably, in seconds. In the preferred embodiment of the present invention, the lifespan is 1 day (86400 seconds).

ISUP learning is based on the IAM digits parameter(s) of interest. For local number portability and other services which might affect the dialled digits, the ISUP Learning can be configured to process IAM Called Party Number and/or Original Called Number for Public initiated traffic and/or IAM Calling Party Number for Private initiated traffic.

The ISUP Learning information has two types of distribution: broadcast, and query-and-response. For each types of distribution, the user may set the ISUP Learning Max Delay parameter. In the preferred embodiment of the present invention, ISUP Learning Max Delay parameter may be set to 0 for broadcast, and to a millisecond interval (1000 recommended) for Public TCAP query ISUP Learning query to all peers with pending response. The ISUP learning is digit based and is stored in a structured data storage means 45, i.e. a number tree for quick access.

On receipt of learning digits, the number tree 45 is queried to see if the corresponding private node is already there in the record. If the ISUP Learning record is not found, a new record is created. If the record is found, the private node name is updated if necessary and the lifespan is reset.

Optionally, in order to maintain the number tree compact, if the ISUP Learning records count exceeds a certain number, i.e. 100,000, PCE 100 forces the expiry of the oldest 100 (or so) records from the lifespan list.

It is also true that not all IAM digits are of interest. In the case of 800 numbers, the destination may change switches based on date and time. Thus the information cannot be kept in the ISUP Learning tree. The ISUP Learning Exception configurable objects can be used to define which prefix digits are not to be learned. If the IAM's digits match any of the exception prefixes, the digits are not learned.

In the case of mated-pair configuration, the ISUP learning information is gathered at the PCE 100 peers receiving the ISUP IAM messages. As most TCAP services are sent via connectionless messages such as UDTs, the Public TCAP query associated with a given digits may not be received at the same PCE 100 peer, which received the IAM. Thus, the ISUP learning information must be available to all PCE peers for proper management.

The user can change the distribute implementation during run time, typically from Broadcast to Query-and-Response (ISUP Learning Max Delay>0). During the transition between the two implementations, the peers will simply return multiple successful responses until their record lifespan expired.

On the rare event that a Query-and-Response is modified to a Broadcast implementation, the Public TCAP query will not find the digits for old ISUP Learning records unless they are received on the proper peer. Any new records will be properly processed, which should allow most “class 5” features which send their IAM prior to their corresponding TCAP. The ISUP Learning information will be reset once the old records expire for at most ISUP Learning Lifespan seconds.

The ISUP Learning records are created or updated based on a received IAM. The new or updated record is then broadcast to all PCE peers for distribution management. Even if the record is already present, the updated record is broadcast to update the Private Node name if necessary and to reset the record lifespan at each PCE peer. On receipt of a Public TCAP message, the local ISUP Learning number tree is queried to see if the digits are learned.

For race conditions, the broadcast record should arrive at the PCE 100 peer prior to the Public TCAP query as the query if often sent following IAM processing such as once the call is closed due to a busy signal. The IAM processing at the remote end should ensure enough time for the ISUP Learning record to be distributed. If the TCAP is received prior to the broadcast, the query will be simply treated as unlearned digits.

FIG. 6 is a call flow diagram illustrating ISUP learning feature of the present invention. Assuming that a subscriber on Public Node 131 place a call, causing Public Node 131 to generate and transmit IAM message 170. Through PCE 100, IAM message 171 is routed (while PCE 100 processes the necessary steps and manipulations to route the message properly) to Private Node 231. Assume that there is no resource available to accept this call, thus Private Node 231 generates and transmit REL message 172 back, through PCE 100, and the message 173 is reached to Public Node 131. Then, the subscriber subsequently dial “*66”, which causes Public Node 131 to generate and transmit TCAP Query Invoke message 178 bounded to PCE 100. Since PCE 100 has already handled and examined IAM message 170 previously, thus PCE 100 determines to route TCAP Query Invoke message 178 to Private Node 231 based on called party digits. PCE 100 processes the message (and records TIDs in the hash tables 41 and 42) and transmit the message 177 to Private Node 231. Once Private Node 231 receives the message 177, and after processes the query, Private Node 231 generates and transmits TCAP Result message 179. PCE 100 intercepts the message, looks up and retrieve from the hash tables 41 and 42 the corresponding TID. PCE 100, then, converts TID and OPC, and forwards the message 180 to Public Node 131.

IAM digit learning may be managed locally at the system 1. On receipt of a Public TCAP query requiring ISUP Learning, a query is sent out to all peers (regardless if the local peer has a known record) while keeping a copy of the SCCP encoded message. The peers respond with an error or a success with the private node name and expiry time. When all the responses are received or the Max Delay timer expires, the most recent entry is used. If there is no entry, the ISUP Learning fails and processing for the Public TCAP query continues with the Broadcast to Private option.

It is to be noted that each node in Private Network 20 is able to maintain its own E164 number; however, the operator of Private Network 20 wishes to hide such information from Public Network 10, since exposing private E164 number implies that a new network entry in Public Network 10. For example, on outbound messages from Private Network 20 to Public Network 10, the private E164 would have to be displayed to the outside world as a public E164 number. On Inbound messages to Private Network 20, the appropriate E164 number shall be mapped to the messages. For solving such problem, Private Node record and Public Gateway record have a field for storing E164 numbers, thus PCE 100 is able to translate and route the messages to the appropriate node.

FIG. 7 illustrates a general process flow of PCE 100 handling a TCAP message originated from Public Network 10. Once PCE 100 intercepts the TCAP message originated from Public Network 10, PCE 100 checks in the database 30, based on DPC of the message, whether GTT tunneling is provisioned at step 300. If so, PCE 100 skips the steps and proceeds to step 304; otherwise, PCE 100 proceeds to the step 301. Then, PCE 100 further checks whether the provisional parameters for TCAP and Point Code mapping have been enabled at step 301; or else, the message is discarded at step 309′. The authorized user of PCE 100 may provision these parameters. If so, then, PCE 100 looks up the database 30 to confirm whether it is for a New TCAP transaction at step 302. If so, OPC and Calling Party (CLG) information are converted at step 303, then, PCE 100 further checks whether TID can be found via ISUP Learning or Broadcast is required to discover the corresponding information at step 304. If so, PCE 100 retrieves information that are leaned through ISUP Learning or initiate broadcasting to Private Network 20 to discover the proper corresponding information at step 305; otherwise, the message is discarded at step 309. Returning to step 302, if the TCAP message was not for new transaction, then PCE 100 checks, if it is in a mated-peer configuration, whether TID may be found from the Peer PCE (not shown) at step 306; otherwise, the message is discarded at step 309′. If so, PCE 100 further looks up TID records in the database 30 or the hash tables 41 and 42 to see if TID record exists at step 307. If TID is found, TID, DPC, OPC and CLG are converted and forward the message at step 308. Otherwise, the TCAP message will be discarded at step 309′.

FIG. 8 illustrates a general process flow of PCE 100 handling a TCAP message originated from Private network 20. Once PCE 100 receives a TCAP message originated from Private Network 20, PCE 100 looks up the structured data storages 30, 41 and 42 to see if DPC match exists at step 400. If so, PCE 100 further checks whether OPC mapping is being provisioned by the authorized user. If so, PCE 100 converts DPC, OPC, Called Party Number (CLD) and CLG at step 411; otherwise, the message is discarded at step 410. Going back to step 400, if DPC match was not found, PCE 100 further checks in the database 30 GTT tunneling was provisioned based on DPC of the message at step 402. If so, PCE 100 skips all the steps and proceeds to step 412 for direct transfer of the message to Public Network 10; otherwise, PCE 100 proceeds and checks whether the authorized user has provisioned TCAP & Point Code mapping feature at step 403. If so, PCE 100 checks whether the message is for a new TCAP transaction and it is not unidirectional at step 404. If that is false, PCE 100 skips and go directly to step 407, which will be discussed in following; however, if it is true, then PCE 100 further examines whether the message is for transaction initial message at step 405. If so, PCE 100 creates a transaction record at step 406; otherwise, PCE 100 look up and see whether there is any transaction record at step 409. If not true, then the message is discarded; otherwise, PCE 100 skips the step 406 and proceeds to step 407. Once the transaction record is created or retrieved, PCE 100 converts TID of TCAP message at step 407. Then, at step 408, PCE 100 further converts DPC, CLG and CLD at step 408.

It is to be understood that the embodiments and variations shown and described herein are merely illustrations of the principles of this invention and that various modifications may be implemented by those skilled in the art without departing from the spirit and scope of the invention. It is also to be understood that present invention may take a form of a computer program product on a computer-readable storage medium having computer-readable and executable codes within the storage medium. 

The invention claimed is:
 1. A communications node for routing a transaction capabilities application part (TCAP) message from a first node in a first subnet to a second node in a second subnet of a communications network, said node comprising: a) a first interface for said first subnet; b) a second interface for said second subnet; c) a processor in communication with said first and second interfaces, and further in communication with a structured database, wherein said processor is configured to: i) prepare a first record for said first node and a second record for said second node in said structured database, ii) receive said TCAP message from said first node through said first interface; iii) extract originating point code (OPC), destination point code (DPC) and transaction identifier (TID) of said TCAP message; iv) look up and retrieve, from said structured database, said second record for a corresponding OPC, a corresponding DPC and a corresponding TID partially or combinedly based on said OPC, said DPC and said TID of said received TCAP message; and v) replace said OPC, said DPC and said TID of said received TCAP message with said corresponding OPC, said corresponding DPC, and said corresponding TID; and vi) forward said TCAP message with said corresponding OPC, said corresponding DPC, and said corresponding TID through said second interface; and vii) prior to looking up and retrieving said corresponding OPC, said corresponding DPC and said corresponding TID, said processor: broadcasts a message to all or a part of the nodes in said second subnet; and determines values of said corresponding OPC, said corresponding DPC and said corresponding TID by receiving a successful response from one of said all or part of said one or more nodes in said second subnet.
 2. The communications node as recited in claim 1, wherein said first subnet is a public or private network.
 3. The communications node as recited in claim 1, wherein said second subnet is a public or private network.
 4. The communications node as recited in claim 1, wherein said message broadcasted is a TCAP Begin message.
 5. The communications node as recited in claim 1, wherein said look up and retrieval of said corresponding OPC, said corresponding DPC and said corresponding TID is based on said DPC of said received TCAP message.
 6. The communications node of claim 1, wherein said first and second records each have a lifespan value.
 7. The communications node of claim 6, wherein each lifespan value is individually assigned to each of said first and second records.
 8. The communications node of claim 7, wherein when said first record lifespan value is determined to be expired recycling the first record and any records in said structured database with a corresponding TID record.
 9. The communications node of claim 7, wherein when said second record lifespan value is determined to be expired recycling the second record and any records in said structured database with a corresponding TID.
 10. A method of routing a transaction capabilities application part (TCAP) message from a first node in a first subnet to a second node in a second subnet in a communications network, comprising the steps of: a) preparing a first record for said first node and a second record for said second node in a structured database b) at a node, receiving said TCAP message from said first node in said first subnet through a first interface; c) at the node, extracting originating point code (OPC), destination point code (DPC) and transaction identifier (TID) of said TCAP message; d) looking up and retrieving, from said structured database, said second record for a corresponding OPC, a corresponding DPC and a corresponding TID partially or combinedly based on said OPC, said DPC and said TID of said received TCAP message; e) replacing said OPC, said DPC and said TID of said received TCAP message with said corresponding OPC, said corresponding DPC, and said corresponding TID; f) from the node, forwarding said TCAP message with said corresponding OPC, said corresponding DPC, and said corresponding TID to said second node in said second subnet through a second interface; and g) prior to looking up and retrieving said corresponding OPC, said corresponding DPC and said corresponding TID: (i) broadcasting a message to all or a part of the nodes in said second subnet; and (ii) determining values of said corresponding OPC, said corresponding DPC and said corresponding TID by receiving a successful response from one of said all or part of said one or more nodes in said second subnet.
 11. The method as recited in claim 10, wherein said first subnet is a public or private network.
 12. The method as recited in claim 10, wherein said second subnet is a public or private network.
 13. The method as recited in claim 10, wherein said message broadcasted is a TCAP Begin message.
 14. The method recited in claim 10, wherein said look up and retrieval of said corresponding OPC, said corresponding DPC and said corresponding TID is based on said DPC of said received TCAP message.
 15. The method of claim 10, wherein said first and second records each have a lifespan value.
 16. The method of claim 15, wherein each lifespan value is individually assigned to each of said first and second records.
 17. The method of claim 16, wherein said first record lifespan value is determined to be expired recycling the first record and any records in said structured database with a corresponding TID.
 18. The method of claim 16, wherein when said second record lifespan value is determined to be expired recycling the second record and any records in said structured database with a corresponding TID.
 19. A non-transitory computer readable storage medium storing executable computer program instructions which, when executed at a node, causes the node to perform a process of routing a transaction capabilities application part (TCAP) message from a first node in a first subnet to a second node in a second subnet comprising the steps of: a) preparing a first record for said first node and a second record for said second node in a structured database; b) at the node, receiving said TCAP message from said first node in said first subnet through a first interface; c) at the node, extracting originating point code (OPC), destination point code (DPC) and transaction identifier (TID) of said TCAP message; d) looking up and retrieving, from said structured database, said second record for a corresponding OPC, a corresponding DPC and a corresponding TID partially or combinedly based on said OPC, said DPC and said TID of said received TCAP message; e) replacing said OPC, said DPC and said TID of said received TCAP message with said corresponding OPC, said corresponding DPC, and said corresponding TID; f) from the node, forwarding said TCAP message with said corresponding OPC, said corresponding DPC, and said corresponding TID to said second node in said second subnet through a second interface; and g) prior to looking up and retrieving said corresponding OPC, said corresponding DPC and said corresponding TID: (i) broadcasting a message to all or a part of the nodes in said second subnet; and (ii) determining values of said corresponding OPC, said corresponding DPC and said corresponding TID by receiving a successful response from one of said all or part of said one or more nodes in said second subnet.
 20. The non-transitory computer readable storage medium as recited in claim 19, wherein said process further includes recycling the first record and any records in said structured database with a corresponding TID upon determining that a lifespan assigned to said first record has expired. 